---
displayed_sidebar: "Chinese"
---

# unix_timestamp

## 功能

将 DATE 或 DATETIME 类型的值转化为 UNIX 时间戳。

如果未指定参数，则将当前的时间转化为 UNIX 时间戳。

对于在 1970-01-01 00:00:00 之前或 2038-01-19 11:14:07 之后的时间，该函数将返回 0。

`fmt` 的格式请参阅 [date_format](./date_format.md) 函数的格式说明。

该函数受时区影响，具体参见 [设置时区](../../../administration/timezone.md)。

## 语法

```Haskell
INT UNIX_TIMESTAMP()
INT UNIX_TIMESTAMP(DATETIME date)
INT UNIX_TIMESTAMP(DATETIME date, STRING fmt)
```

## 参数说明

参数必须是 DATE 或 DATETIME 类型。

## 示例

```Plain Text
select unix_timestamp();
+------------------+
| unix_timestamp() |
+------------------+
|       1558589570 |
+------------------+

select unix_timestamp('2007-11-30 10:30:19');
+---------------------------------------+
| unix_timestamp('2007-11-30 10:30:19') |
+---------------------------------------+
|                            1196389819 |
+---------------------------------------+

select unix_timestamp('2007-11-30 10:30-19', '%Y-%m-%d %H:%i-%s');
+---------------------------------------+
| unix_timestamp('2007-11-30 10:30-19') |
+---------------------------------------+
|                            1196389819 |
+---------------------------------------+

select unix_timestamp('2007-11-30 10:30%3A19', '%Y-%m-%d %H:%i%%3A%s');
+---------------------------------------+
|unix_timestamp('2007-11-30 10:30%3A19')|
+---------------------------------------+
|                            1196389819 |
+---------------------------------------+

select unix_timestamp('1969-01-01 00:00:00');
+---------------------------------------+
| unix_timestamp('1969-01-01 00:00:00') |
+---------------------------------------+
|                                     0 |
+---------------------------------------+
```
